@using System.Collections.Generic
@using System.Collections.ObjectModel
@using ApiGenerator
@using ApiGenerator.Domain.Code
@using ApiGenerator.Domain.Specification
@using CsQuery.ExtensionMethods.Internal
@inherits CodeTemplatePage<KeyValuePair<string, ReadOnlyCollection<ApiEndpoint>>>
@{ await IncludeAsync("GeneratorNotice.cshtml", Model); }
@{
	KeyValuePair<string, ReadOnlyCollection<ApiEndpoint>> model = Model;
	string ns = model.Key != CsharpNames.RootNamespace ? "."+CsharpNames.ApiNamespace+"." + model.Key + CsharpNames.ApiNamespaceSuffix : null;
	var endpoints = model.Value;
}

// ReSharper disable RedundantUsingDirective
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Linq.Expressions;
using Elastic.Transport;

// ReSharper disable once CheckNamespace
namespace Elasticsearch.Net@(ns)
{
	@foreach (var endpoint in endpoints)
	{
		var r = endpoint.RequestParameterImplementation;
		var supportsBody = endpoint.Body != null;
		var names = r.CsharpNames;
<text>
	///<summary>Request options for @names.MethodName@Raw(r.OfficialDocumentationLink.IsNullOrEmpty() ? "" : " <para>" + r.OfficialDocumentationLink + "</para>")</summary>
	public class @names.ParametersName : RequestParameters<@names.ParametersName> 
	{
		@foreach (var param in r.Params)
		{
<text>		@Raw(param.InitializerGenerator(r.CsharpNames.Namespace, param.TypeLowLevel, param.ClsName, param.QueryStringKey, param.SetterLowLevel, param.Description))
</text>
		}
	}</text>
	}
}